package com.mallcloud.mall.app.mapper;

import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.mallcloud.mall.app.api.entity.vo.ProOrderCouponRefundDone;
import com.mallcloud.mall.app.api.entity.vo.ProXglSendSaleGoods;
import com.mallcloud.mall.app.api.entity.vo.ProXglSendSaleHead;
import com.mallcloud.mall.app.api.entity.vo.ProXglSendSalePay;
import com.mallcloud.mall.mall.api.entity.dto.*;
import io.swagger.annotations.ApiModelProperty;
import org.apache.ibatis.annotations.*;
import org.apache.ibatis.mapping.StatementType;

/**
 * @title 存储过程
 * @InterceptorIgnore(tenantLine="true")的作用是 对某个Mapper方法 忽略多租户处理
 */
@InterceptorIgnore(tenantLine = "true")
@Mapper
public interface AppProcedureMapper {

	@ApiModelProperty(value = "自动注册登陆")
    @Select("{CALL SP_USERINFO_DL("
			+ "#{p.mobile},"
			+ "#{p.loginType},"
			+ "#{p.storeNo},"
			+ "#{p.openid},"
			+ "#{p.wxNickName},"
			+ "#{p.wxAvatar},"
            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.cardNo,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.points,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.rtMkt,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.cardType,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.cardMaxDate,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void autoLogin(@Param("p") ProAutoLogin params);

	@ApiModelProperty(value = "积分兑换商品")
    @Select("{CALL CUSTJFDH.SP_JFDH_LP("
            + "#{p.id,mode=IN,jdbcType=VARCHAR},"
            + "#{p.redeemMoney,mode=IN,jdbcType=VARCHAR},"
            + "#{p.points,mode=IN,jdbcType=VARCHAR},"
            + "#{p.amount,mode=IN,jdbcType=VARCHAR},"
            + "#{p.mobile,mode=IN,jdbcType=VARCHAR},"
            + "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.newId,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.surplusStock,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void redeemItem(@Param("p") ProPointsProductRedeem params);

	@ApiModelProperty(value = "积分兑换商品回滚")
    @Select("{CALL CUSTJFDH.SP_JFDH_TLLP("
            + "#{p.billNo,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void redeemItemBack(@Param("p") ProRedeemItemBack params);

	@ApiModelProperty(value = "会员签到")
    @Select("{CALL SP_USERR_QD("
            + "#{p.mobile,mode=IN,jdbcType=VARCHAR},"
            + "#{p.signDate,mode=IN,jdbcType=DATE},"
            + "#{p.givenType,mode=IN,jdbcType=VARCHAR},"
            + "#{p.memo,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.rtPoint,mode=OUT,jdbcType=BIGINT}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void signIn(@Param("p") ProSignIn params);

	@ApiModelProperty("积分券-领取")
	@Select("{CALL CUSTJFDH.SP_WXCARDLQ("
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.scheduleId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.type,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.num,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.tktvipno,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void getCoupon(@Param("p") ProGetCoupon params);

    @ApiModelProperty("积分券-兑换")
    @Select("{CALL CUSTJFDH.SP_WXCARD_JFDHQ("
            + "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.redeemType,mode=IN,jdbcType=VARCHAR},"
            + "#{p.scheduleId,mode=IN,jdbcType=VARCHAR},"
            + "#{p.type,mode=IN,jdbcType=VARCHAR},"
            + "#{p.redeemPoints,mode=IN,jdbcType=VARCHAR},"
            + "#{p.redeemAmount,mode=IN,jdbcType=VARCHAR},"
            + "#{p.num,mode=IN,jdbcType=VARCHAR},"
            + "#{p.memo,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.tktvipno,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void redeemCoupon(@Param("p") ProRedeemCoupon entity);

    @ApiModelProperty("积分券-买券")
    @Select("{CALL CUSTJFDH.SP_WXCARDMQ_XSMQ("
            + "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.scheduleId,mode=IN,jdbcType=VARCHAR},"
            + "#{p.payMoney,mode=IN,jdbcType=VARCHAR},"
            + "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.memo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.payNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.type,mode=IN,jdbcType=VARCHAR},"
            + "#{p.num,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.recordId,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.billNo,mode=OUT,jdbcType=CURSOR,resultMap=cursorMap}"
            + ")}")
	@Results(id="cursorMap", value={
			@Result(id = true, column = "VHETCDBILLNO", property = "orderNo"),
			@Result(column = "VHEQSEQNO", property = "couponId")
	})
	@ResultType(ProPayCouponInfo.class)
    @Options(statementType = StatementType.CALLABLE)
    void payCoupon(@Param("p") ProPayCoupon entity);

    @ApiModelProperty("核对买券")
    @Select("{CALL SP_WXCARDMQ_CXTJ("
            + "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.scheduleId,mode=IN,jdbcType=VARCHAR},"
            + "#{p.payMoney,mode=IN,jdbcType=VARCHAR},"
            + "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.memo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.payNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.type,mode=IN,jdbcType=VARCHAR},"
            + "#{p.num,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR},"
            + "#{p.recordId,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.billNo,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void payCouponCheck(@Param("p") ProPayCoupon entity);

    @ApiModelProperty("买券回滚")
    @Select("{CALL CUSTJFDH.SP_WXCARDMQ_QXJY("
            + "#{p.payNo,mode=IN,jdbcType=VARCHAR},"

            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void payRollBackCoupon(@Param("p") ProPayRollBackCoupon entity);

    @ApiModelProperty("券转赠")
    @Select("{CALL CUSTJFDH.SP_WXCARD_ZZQR("
            + "#{p.cardNoOfTransferor,mode=IN,jdbcType=VARCHAR},"
            + "#{p.givenCouponNumber,mode=IN,jdbcType=VARCHAR},"
            + "#{p.receiverPhone,mode=IN,jdbcType=VARCHAR},"
            
            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void givenCoupon(@Param("p") ProGivenCoupon entity);

	@ApiModelProperty("券退款信息修改")
	@Select("{CALL SP_VIPMQ_ZDTK("
			+ "#{p.couponId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.orderNo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	void updateRefundInfo(ProOrderCouponRefundDone dto);

	//--应该是美美的停车功能----------------------------------------------------------------
    @ApiModelProperty("停车券-核销")
    @Select("{CALL CUSTZHTC.SP_ZHTC_TCQ("
            + "#{p.couponId,mode=IN,jdbcType=VARCHAR},"
            + "#{p.couponRedeemAmount,mode=IN,jdbcType=VARCHAR},"
            + "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
            + "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
            + "#{p.message,mode=OUT,jdbcType=VARCHAR}"
            + ")}")
    @Options(statementType = StatementType.CALLABLE)
    void redeemCouponWriteOff(@Param("p") ProParkingCouponWriteOff entity);

	/**
	 * xgl也用到了
	 */
	@ApiModelProperty("积分停车-抵扣费")
	@Select("{CALL CUSTZHTC.SP_ZHTC_JFDK("
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.discountPoints,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.memo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void parkingPointsDiscount(@Param("p") ParkingPointsPayDiscount entity);

	@ApiModelProperty("停车券-核销冲正")
	@Select("{CALL CUSTZHTC.SP_ZHTC_TCQFH("
			+ "#{p.couponId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.couponRedeemAmount,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void parkingCouponReversal(@Param("p") ProParkingCouponWriteOff entity);

	@ApiModelProperty("停车积分-抵扣费冲正")
	@Select("{CALL CUSTZHTC.SP_ZHTC_JFDKFH("
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.discountPoints,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.memo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void ParkingPointsDiscountReversal(@Param("p") ParkingPointsPayDiscount entity);

	//--星光里券----------------------------------------------------------------
	@ApiModelProperty("券批量核销")
	@Select("{CALL CUSTJFDH.SP_WXCARD_PLHX("
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.couponNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.phone,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.batchWriteOffNumber,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void proCouponBatchWriteOff(ProCouponBatchWriteOff entity);

	//--星光里停车券----------------------------------------------------------------
	@ApiModelProperty("停车券兑换记录生成")
	@Select("{CALL CUSTZHTC.SP_ZHTC_TCJFDK("
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.type,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.activityId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.phone,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.plateNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.redeemType,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.redeemPoints,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.redeemDuration,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.redeemStatus,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void ProXglParkingRedeemRecordReporting(@Param("p") ProXglParkingRedeemRecordReporting entity);

	//--星光里立牌支付----------------------------------------------------------------
	@ApiModelProperty("上传交易小票头")
	@Select("{CALL JAVA_MSCSENDSALEHEAD("
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.posKey,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.saleTime,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.phone,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.totalMoney,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.finalPayMoney,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.changeAmount,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.billNo,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglSendSaleHead(@Param("p") ProXglSendSaleHead sendSaleHead);

	@ApiModelProperty("上传交易商品明细")
	@Select("{CALL JAVA_MSCSENDSALEGOODS("
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.billNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.posKey,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglSendSaleGoods(@Param("p") ProXglSendSaleGoods sendSaleGoods);

	@ApiModelProperty("上传支付明细")
	@Select("{CALL JAVA_MSCSENDSALEPAY("
			+ "#{p.billNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payCode,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payMoney,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payNo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglSendSalePay(@Param("p") ProXglSendSalePay sendSalePay);

	@ApiModelProperty("手工券核销")
	@Select("{CALL CUSTMSC.SP_MSC_QXF("
			+ "#{p.couponId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.writeOffMoney,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.writeOffStoreNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payMethod,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.posKey,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglQRCodePaymentCouponWriteOff(@Param("p") ProXglQRCodePaymentCouponWriteOff entity);

	@ApiModelProperty("手工券核销冲正")
	@Select("{CALL CUSTMSC.SP_MSC_QFH("
			+ "#{p.couponId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.redeemMoney,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.writeOffStoreNo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglQRCodePaymentCouponReversal(@Param("p") ProXglQRCodePaymentCouponReversal dto);

	@ApiModelProperty("累计积分")
	@Select("{CALL SP_MSC_GETSALEJF("
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.field1,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.vbillno,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.thisPoints,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.accumulatePoints,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.memo,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.otherAccumulatePoints,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void xglQRCodePaymentAccumulatePoints(ProXglQRCodePaymentAccumulatePoints dto);

	//--储值卡----------------------------------------------------------------
	@ApiModelProperty("储值卡购卡")
	@Select("{CALL CARDSERV.SP_MZK_GK("
			+ "#{p.vipCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payOrderNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.valueCardMainId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.purchaseNumber,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.storeNo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.valueCardId,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.valueCardNo,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.storedValueAmount,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void buy(@Param("p") ProValueCardPurchase entity);

	@ApiModelProperty("储值卡充值")
	@Select("{CALL CARDSERV.SP_MZK_CZ("
			+ "#{p.vipCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.payOrderNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.rechargeAmount,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR},"
			+ "#{p.storedValueAmount,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void recharge(@Param("p") ProValueCardRecharge entity);

	@ApiModelProperty("储值卡绑定")
	@Select("{CALL CARDSERV.SP_MZK_BD("
			+ "#{p.bindCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.bindCardPassword,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void bind(@Param("p") ProValueCardBind entity);

	@ApiModelProperty("储值卡转赠")
	@Select("{CALL CARDSERV.SP_MZK_ZZ("
			+ "#{p.cardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.mobile,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.valueCardNo,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void given(@Param("p") ProValueCardGiven entity);

	@ApiModelProperty("储值卡转赠状态")
	@Select("{CALL CARDSERV.SP_MZK_ZZSTATUS("
			+ "#{p.senderCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.receiverCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.msgId,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.receiverMobile,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.senderValueCardNo,mode=IN,jdbcType=VARCHAR},"
			+ "#{p.givenStatus,mode=IN,jdbcType=VARCHAR},"

			+ "#{p.messageId,mode=OUT,jdbcType=INTEGER},"
			+ "#{p.message,mode=OUT,jdbcType=VARCHAR}"
			+ ")}")
	@Options(statementType = StatementType.CALLABLE)
	void givenStatus(@Param("p") ProValueCardGivenStatus entity);
}
